package dominio;

import java.util.ArrayList;
import java.util.List;

import dto.ItemFacturaTO;
import dto.ReferenciaFacturaTO;

public class ReferenciaFactura {
	private Integer id;
	private RemitoCliente remito;
	private List<ItemFactura> items;

	public ReferenciaFactura() {
		items = new ArrayList<ItemFactura>();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public RemitoCliente getRemito() {
		return remito;
	}

	public void setRemito(RemitoCliente remito) {
		this.remito = remito;
	}

	public List<ItemFactura> getItems() {
		return items;
	}

	public void agregarItem(ItemFactura item) {
		items.add(item);
	}

	public ReferenciaFacturaTO getDTO() {
		ReferenciaFacturaTO dto = new ReferenciaFacturaTO();
		dto.setId(id);
		if (remito != null)
			dto.setRemito(remito.getDTO());
		for (ItemFactura i : items)
			dto.agregarItem(i.getDTO());
		return dto;
	}

	public static ReferenciaFactura fromDTO(ReferenciaFacturaTO dto) {
		if (dto == null)
			return null;
		ReferenciaFactura ref = new ReferenciaFactura();
		ref.setId(dto.getId());
		ref.setRemito(RemitoCliente.fromDTO(dto.getRemito()));
		for (ItemFacturaTO i : dto.getItems())
			ref.agregarItem(ItemFactura.fromDTO(i));
		return ref;
	}
}